package com.bigegg.employee.mapper;

import java.util.List;
import com.bigegg.employee.domain.ActivitySignComp;
import com.bigegg.employee.dto.MajorActSignSta;
import com.bigegg.employee.dto.UnitSignCount;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 单位签到Mapper接口
 * 
 * @author sun
 * @date 2022-08-16
 */
@Mapper
public interface ActivitySignCompMapper 
{
    /**
     * 查询单位签到
     * 
     * @param id 单位签到主键
     * @return 单位签到
     */
    ActivitySignComp selectActivitySignCompById(Long id);

    /**
     * 查询单位签到列表
     * 
     * @param activitySignComp 单位签到
     * @return 单位签到集合
     */
    List<ActivitySignComp> selectActivitySignCompList(ActivitySignComp activitySignComp);

    /**
     * 新增单位签到
     * 
     * @param activitySignComp 单位签到
     * @return 结果
     */
    int insertActivitySignComp(ActivitySignComp activitySignComp);

    /**
     * 修改单位签到
     * 
     * @param activitySignComp 单位签到
     * @return 结果
     */
    int updateActivitySignComp(ActivitySignComp activitySignComp);

    /**
     * 删除单位签到
     * 
     * @param id 单位签到主键
     * @return 结果
     */
    int deleteActivitySignCompById(Long id);

    /**
     * 批量删除单位签到
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteActivitySignCompByIds(Long[] ids);

    int hasSigned(Long activityId, Long unitId, Long stuId);

    /**
     * 活动总签到数
     *
     * @param activityId 活动ID
     * @return 签到数
     */
    int countSign(Long activityId);

    /**
     * 班级学生签到数
     *
     * @param activityId 活动ID
     * @param classId    班级ID
     * @return 签到数
     */
    int countClassSign(@Param("activityId") Long activityId, @Param("classIdList") List<Long> classId);

    /**
     * 按照专业分组查询签到总数
     *
     * @param activityId 活动ID
     * @param collegeId  学院ID
     * @return 专业分组签到总数
     */
    List<MajorActSignSta> countMajorSign(Long activityId, Long collegeId);


    /**
     * 获取单位签到情况
     * @param activityId 活动ID
     * @return 单位签到情况
     */
    List<UnitSignCount> getUnitSignCount(Long activityId);

}
